"""
显示操作
1、创建一个空白的窗口
2、设置显示选项
3、显示
"""
import sys
from typing import Optional
from PySide6.QtWidgets import QApplication, QLabel, QWidget


class ChildWidget(QWidget):
    """
    QWidget可以嵌套在别的QWidget中
    """
    def __init__(self, parent: Optional[QWidget] = None) -> None:
        super().__init__(parent=parent)
        self.setObjectName("SUBWIDGET")
        self.label = QLabel(self.objectName(), self)

class ParentWidget(QWidget):
    """
    父组件
    一般不建议初始化子组件时直接指定父组件(parent)，建议后续通过layout添加
    如下例子将显示重叠的SUBWIDGET和subwidget
    """
    def __init__(self, parent: Optional[QWidget] = None) -> None:
        super().__init__(parent=parent)
        ChildWidget(self)
        self.label = QLabel("\n".join([str.lower(x.objectName()) for x in self.children()]), self)

if __name__ == "__main__":
    app = QApplication(sys.argv)        # 主流程控制，一个程序只能有一个QApplication，sys可以用于命令行导入
    window = ParentWidget()
    window.show()
    sys.exit(app.exec())               # 控制程序安全退出


